package Demo01;

import java.lang.reflect.Array;

class MyArray<E>{
    //public T[] obj = new T[3];
    //public E[] obj = (E[] ) new Object[3];

    //以后常用的 ！！！！ 官方自己在用的手段
//    public Object[] obj = new Object[3];
//
//    public E getPos2(int pos) {
//        return (E) obj[pos];
//    }

    public E[] obj;
    public MyArray(Class<E> clazz,int capacity){
        obj=(E[])Array.newInstance(clazz,capacity);
    }

    public E getPos(int pos){
        return obj[pos];
    }
    public void setObj(int pos,E val){
        obj[pos]=val;
    }
    public E[] getArray(){
        return obj;
    }
}

public class test1 {
//    public static void main(String[] args) {
//        //实例化对象的同时，指定当前泛型类的指定参数类型是Integer
//        MyArray<Integer> myArray=new MyArray<>(Integer.class,10);
//        //可以储存指定的数据类型
//        myArray.setObj(0,10);
//        myArray.setObj(1,90);
//        myArray.setObj(2,60);
//
//        Integer d=myArray.getPos(2);
//
//        MyArray<String> myArray2=new MyArray<>(String.class,5);
//        myArray2.setObj(0, "张三");
//        myArray2.setObj(1, "李四");
//
//        String str=myArray2.getPos(0);
//    }


//    public static void main(String[] args) {
//        MyArray<Integer> myArray=new MyArray<>(Integer.class,10);
//        myArray.setObj(0,10);
//        myArray.setObj(1,90);
//        Integer[] integers =(Integer[]) myArray.getArray();
//    }


}


